package cn.devzyh.service;

import cn.devzyh.domain.Role;
import cn.devzyh.domain.User;
import cn.devzyh.domain.UserVo;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

/**
 * 用户模块业务层
 */
public interface UserService {

    /**
     * 根据条件和分页查询用户信息
     *
     * @return
     */
    PageInfo findByConditionAndPage(UserVo userVo);

    /**
     * 修改用户状态
     *
     * @param id
     * @param status
     */
    void updateUserStatus(Integer id, String status);

    /**
     * 登录信息验证
     *
     * @param user
     * @return
     */
    User login(User user);

    /**
     * 查询用户角色
     *
     * @param userId
     * @return
     */
    List<Role> findUserRoleById(Integer userId);

    /**
     * 修改用户角色关联数据
     *
     * @param userVo
     */
    void userContextRole(UserVo userVo);

    /**
     * 查询指定用户授权的菜单及资源列表
     *
     * @param userId
     * @return
     */
    Map<String, Object> getUserPermissions(Integer userId);
}